.\"
.\" Copyright (C) 1998  Mark Baysinger (mbaysing@ucsd.edu)
.\" Copyright (C) 1998,1999,2000  Ross Combs (ross@bnetd.org)
.\" Copyright (C) 1999  Rob Crittenden (rcrit@greyoak.com)
.\" 
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.TH BNETD.CONF 5 "12 June, 2000" "BNETD" "BNETD User's Manual"
.SH NAME
bnetd.conf \- configuration for the Unix Battle.net daemon
.SH DESCRIPTION
The file
.I bnetd.conf
contains information used by the Unix Battle.net daemon
.BR bnetd (1)
to obtain system-specific information such as file locations and policies.
.LP
The file consists of a list of configuration entries and comments.  A comment
starts with a pound (#) sign and continues to the end of the line.  Blank lines
and whitespace are ignored between entries.  A configuration entry is composed
of two fields separated by an equals (=) sign:
.IP
\f2directive\f1 = \f2value\f1
.LP
The
.I directive
field contains the name of the configuration item you want to set to the value
of \f2value\f1.  If the value contains spaces it should be surrounded by
quotation marks (").  The value may not contain quotation marks.  Multiple
entries are not allowed on a single line.
.LP
If the field is Boolean, any of \fBtrue\fP, \fBfalse\fP, \fByes\fP, \fBno\fP,
\fB1\fP, or \fB0\fP may be used.  If the field is numeric, it must be in base
ten.  If the field is an address list, it must be delimited by commas.  Each
element may contain a hostname (or IP) and a port number.  If a port number is
given, it must be preceded by a colon (:).  A colon by itself may be used to
represent the wildcard address.  If the field is a file or directory path, use
of an absolute pathname is recommended.  The values for \fBiconfile\fP,
\fBtosfile\fP, and \fBmpqauthfile\fP are not pathnames but just the names of
the files.  They must be in the \fBfiledir\fP directory.
.LP
Recognized values for \f2directive\f1 include:
.RS
.TP 10
.B filedir
Specifies the path where downloadable files are stored.  These files are
include the TOS (terms of service), icons, and ad banners.  (Normally "files/")
.TP
.B userdir
Specify the path where user accounts are stored.  (Normally "users/")
.TP
.B reportdir
Specify the path where game reports are stored.  (Normally "reports/")
.TP
.B chanlogdir
Specify the path where channel logs are stored.  (Normally "chanlogs/")
.TP
.B defacct
Specify the path of the default account file.  This file contains all default
account attributes which are used when an attribute is not set on an actual
account. (Normally "bnetd_default_user")
.TP
.B motdfile
Specify the path of the "message of the day" text file.  This is displayed
when a user enters the first chat channel.  (Normally "bnmotd.txt")
.TP
.B channelfile
Specify the path of the permanent channel list.  (Normally "channel.list")
.TP
.B newsfile
Specify the path of the file that is printed when the /news command is used.
If no file is specified or the file doesn't exist then the server prints
"No news today" to the user.  (Normally "news.txt")
.TP
.B adfile
Specify the path of the ad banner list which determines which banners to
display at which times.  (Normally "ad.list")
.TP
.B ipbanfile
Specify the path of the IP ban file which can be used to block connections
from certain addresses.  (Normally "bnban")
.TP
.B helpfile
Specify the path of the chat command help file.  (Normally "bnhelp")
.TP
.B transfile
Specify the path of the game address translation file which can be used to
allow players from behind a NAT firewall to play with those outside of the
firewall.  (Normally "gametrans")
.TP
.B mpqfile
Specify the path of the autoupdate MPQ archive list.  It chooses which
versions of which clients to update.  (Normally "autoupdate")
.TP
.B logfile
Specifies the file where the server appends the event messages selected with
the \f3loglevels\f1 field.  (Normally "bnetd.log")
.TP
.B pidfile
Specify the path of the file where the server records its process ID.
(Normally "bnetd.pid")
.TP
.B fortunecmd
The path for the program to be executed when /fortune is used.  See
.BR fortune (6).
(Normally "/usr/games/fortune")
.TP
.B loglevels
Specify A comma-delimited list of message levels to log.  The avaliable levels
are:
.RS
.TP
.B trace
flow tracing statements
.TP
.B debug
debugging information
.TP
.B info
potentially useful informational
.TP
.B warn
potentially serious events
.TP
.B error
error messages and unexpected events
.TP
.B fatal
fatal errors
.RE
.TP
.B iconfile
Specify the name of the BNI chat icons file which must be inside of the
.B filedir
directory.  (Normally "icons.bni")
.TP
.B tosfile
Specify the name of the TOS file which must be inside of the
.B filedir
directory.  (Normally "tos.txt")
.TP
.B allow_autoupdate
Enable or disable to automatic client update facility.  If you want to allow
different client versions to connect, set this to false.  If you want to update
all clients to the same version, be sure to also download the MPQ auth file,
and the update MPQ.
.TP
.B mpqauthfile
Specify the name of the MPQ authorization file which must be inside of the
.B filedir
directory.  This file is used to determine the current client version.  This
is only needed if
.B allow_autoupdate
is turned on.  (Normally "IX86ver1.mpq")
.TP
.B usersync
Specify the time in seconds between account file saves.  A value of 0 means to
wait until shutdown to save account files and not do do periodic updates.
.TP
.B userflush
Specify the number of seconds of inactivity before a user is unloaded from
memory (only checked during file account updates, see usersync.  After the
account has been unloaded, it must be read from disk when accessed again.
.TP
.B latency
How often to send user latency tests to the user, in seconds.  These are used
to decide how many "lag bars" to print next to users in channels.
.TP
.B shutdown_delay
Specify the amount of time in seconds to delay shutting down the server when it 
receives a SIGTERM or SIGINT
.BR signal (7).
.TP
.B shutdown_decr
You can decrease the amount of time to wait by this value by sending another
SIGTERM or SIGINT
.BR signal (7).
.TP
.B newaccounts
If this value is true then new accounts may be created by users on the system.
Administrators can always use the /addacct chat command.
.TP
.B kick_oldlogin
If this value is true then a second login by the same user will kick off the
first, otherwise the second login will get message saying that they are already
logged in.
.TP
.B ask_new_channel
If this value is true, a user using the "Channels" button to join a
non-existing channel will be asked if they wish to create it just like
Battle.net.  Otherwise, the channel will be created silently.
.TP
.B report_all_games
If this value is true, all games with more than one player lasting for more
than 5 minutes will be logged.  Otherwise, only ladder games are logged.
.TP
.B hide_pass_games
If this value is true, private (passworded) games will not be shown in the game
list just like Battle.net.  Otherwise all games will be listed.
.TP
.B hide_started_games
If this value is true, games which have already stated will not be sent to the
clients.  The clients filter these games out for Starcraft and Brood War already.
.TP
.B hide_temp_channels
If this value is true, private channels will not be shown in the channel list
just like Battle.net.  Otherwise all channels will be listed.
.TP
.B extra_commands
If this value is true then all the extended chat commands are enabled,
otherwise only those which exist on Battle.net are enabled.
.TP
.B disc_is_loss
If this value is true then any disconnect will be treated as a loss (regardless
of the setting in ladder games).
.TP
.B enable_conn_all
If this value is true then all users may use the /con and /connections
commands.  Otherwise only administrators may use them.
.TP
.B hide_addr
If this value is true then IP addresses will be hidden from non-admins in the
output of the /con, /games, /gameinfo, and /netinfo commands.
.TP
.B chanlog
If this value is true then private channels will be logged to files in the
.B chanlogdir
direcotry.  The logging of public (permanent) channels is controlled in the
.B channelfile
file.
.TP
.B track
Set this value to 0 to disable sending updates to the tracking server.  Any
other number will set the number of seconds between tracking packets.  Try to
use a number above 60 seconds unless you know the tracking server administrator
doesn't mind being spammed.
.TP
.B trackaddrs
Specify a comma-delimited list of addresses of tracking servers to send updates
to.  The address for the master server is "track.bnetd.org".  A port may be
specified after a colon numerically or by name from
.BR /etc/services (5).
If a port number is not specified, it defaults to 6114.
.TP
.B location
Give a description of the physical location of the server such as
"San Diego, CA, USA".  This is reported to the tracking server.
.TP
.B description
Give a description of title or role of the server such as
"Joe's Spiffy Server".  This is reported to the tracking server.
.TP
.B url
Give a URL for the homepage or contact for the server such as
"http://www.foo.com/joeserv.html".  This is reported to the tracking
server.
.TP
.B contact_name
Give the name of the contact for the server such as "Joe Blockhead".  This is
reported to the tracking server.
.TP
.B contact_email
Give the email address of the contact for the server such as "joe@foo.com".
This is reported to the tracking server.
.TP
.B use_keepalive
If this value is set to true, the server will enable the TCP keepalive option
to allow the system to detect stale connections.
.TP
.B servaddrs
Specify the comma-delimited list of addresses the server should listen on.  A
port may be specified after a colon numerically or by name from
.BR /etc/services (5).
If a port number is not specified, it defaults to 6112.
.TP
.B udptest_port
The UDP port number which is assumed for clients if they don't send SESSIONADDR
packets.  If it is set to zero, the server will use the remote TCP port number
as the default UDP port number.
.SH SEE ALSO
.BR bnetd (1)
.SH AUTHOR
Rob Crittenden (\fIrob@bnetd.org\fP),
Ross Combs (\fIross@bnetd.org\fP)
